<!--
  Copyright JS Foundation and other contributors, http://js.foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<script type="text/html" data-help-name="switch">
  <p>
    Направляет сообщения по разным ветвям потока, в завсимости от значений свойств сообщения или его позиции в последовательности.
  </p>

  <h3>Подробности</h3>
  <p>
    Когда приходит сообщение, узел выполняет проверку соответствия сообщения каждому из установленных правил и перенаправляет сообщение на соответствующие выходы.
  </p>
  <p>
    При желании узел может быть настроен на прекращение проверки правил после того как найдено первое подходящее.
  </p>
  <p>
    Правила могут применяться к свойству сообщения, свойству потокового или глобального контекста, переменной среды или результату выражения JSONata.
  </p>

  <h4>Правила</h4>
  <p>
    Существует четыре типа правил:
  </p>
  <ol>
    <li>Правила категории <b>value rules</b> сравнивают значение указанного свойства сообщения</li>
    <li>Правила категории  <b>sequence rules</b> могут применяться для последовательностей сообщений, таких как сгенерированные узлом Split</li>
    <li><b>Выражение JSONata</b> исполняется для сообщения и считается подходящим, если оно возвращает истинное значение</li>
    <li>Правило <b>иначе</b> используется для сообщений, не подходящих ни под одно из предыдущих правил.</li>
  </ol>

  <h4>Примечание</h4>
  <p>
    Правила <code>равно true/false</code> и <code>равно null</code> проводят строгое сравнение с этими типами. Они не конвертируются между типами.
  </p>
  <p>
    Правила <code>пустое</code> и <code>не пустое</code> могут быть использованы для проверки длины строк, массивов и буферов, или количества свойств, которые содержит объект. Эти правила не подходят, если тестируемое свойство содержит значение <code>логического типа</code>, <code>null</code> или <code>undefined</code>.
  </p>

  <h4>Обработка последовательностей сообщений</h4>
  <p>
    По умолчанию узел не изменяет свойство <code>msg.parts</code> у сообщений, являющихся частью последовательности.
  </p>
  <p>
    Можно включить параметр <b>пересоздавать последовательности сообщений</b> для создания новых последовательностей сообщений для каждого соответствующего правила. В этом режиме узел будет помещать в буфер всю входящую последовательность перед отправкой новых последовательностей. Настройка <code>nodeMessageBufferMaxLength</code> может быть использована для ограничения количества сообщений в буфере.
  </p>
</script>
